package com.team.party.service;

import java.util.Date;
import java.util.List;

import com.team.party.bean.Activity;
import com.team.party.bean.Manager;
import com.team.party.bean.Society;
import com.team.party.bean.Student;

public interface ManagerService {
	/**
	 * 管理员登录
	 * @throws Exception 
	 */
	public Manager serchManager(String username) throws Exception;

	
    /**
     * 管理员注销
     */
    public void logout();
    
    
    /**
     * 通过社团号，查询管理的社团信息
     * @param: soc_no 社团号
     * @return:Society
     * @throws Exception 
      */
    public Society serchMySociety(String soc_no) throws Exception;

    
    /**
     * 通过社团号，修改社团信息
     * 允许修改：挂牌单位、所在校区、 负责人、负责人电话、当前人数、社团介绍
	 * @param soc_unit 单位
	 * @param soc_locat 校区
	 * @param soc_man 负责人
	 * @param soc_tele 负责人电话
	 * @param soc_count 当前人数
	 * @param soc_intro 社团介绍
	 * @param soc_no 社团号
     * @return:Boolean
     * @throws Exception 
     */
    public Boolean changeSocietyMessage(String soc_unit, String soc_locat, String soc_man, String soc_tele, int soc_count, String soc_intro, String soc_no) throws Exception;
    
    
    /**
     * 查找本社团所有成员
	 * @param soc_no
     * @return:List<Student>
     * @throws Exception 
     */
    public List<Student> serchSocietyNumber(String soc_no) throws Exception;
    
    
    /**
     * 添加社团成员
     * @param stu_no 学生号
     * @param soc_no 社团号
     * @return:Boolean
     * @throws Exception 
     */
    public Boolean insertSocietyNumber(String stu_no, String soc_no) throws Exception;
    
    
    /**
     * 通过学生学号，修改社团成员信息
     * 允许修改：姓名、性别、年龄、电话、年级、学院
	 * @param stu_name 姓名
	 * @param stu_sex 性别
	 * @param stu_age 年龄
	 * @param stu_tel 电话
	 * @param stu_form 年级
	 * @param stu_scho 学院
	 * @param stu_no 学号
     * @return:Boolean
     * @throws Exception 
     */
    public Boolean changeNumberMessage(String stu_name, String stu_sex, int stu_age, String stu_tel, String stu_form, String stu_scho, String stu_no) throws Exception;
    
    
    /**
     * 删除社团成员
     * @param stu_no 学生号
     * @param soc_no 社团号
     * @return:Boolean
     * @return:Boolean
     * @throws Exception 
     */
    public Boolean deleteSocietyNumber(String stu_no, String soc_no) throws Exception;
    

    /**
     * 查找本社团活动
     * @param soc_no 社团号
     * @return:List<Activity>
     * @throws Exception 
     */
    public List<Activity> serchMyActivity(String soc_no) throws Exception;
    
    
    /**
     * 通过活动号查找活动
     * @param act_no 活动号 
     * @return:Activity
     * @throws Exception 
     */
    public Activity serchActivityByNo(String act_no) throws Exception;

    /**
     * 发布活动
     * @param act_no 活动号
     * @param soc_no 社团号
     * @param act_name 活动名称
     * @param act_loc 活动地点
     * @param act_start 活动开始时间
     * @param act_end 活动结束时间
     * @param act_public 是否公开
     * @param act_intro 活动介绍
     * @param act_pic 活动图片
     * @return:Boolean
     * @throws Exception 
     */
    public Boolean saveActivity(String act_no, String soc_no, String act_name, String act_loc, Date act_start, Date act_end, int act_public, String act_intro, String act_pic) throws Exception;
    
    
    /**
     * 修改活动信息
     * 允许修改：活动名称、活动地点、开始时间、结束时间、活动介绍、活动图片
     * @param act_name 活动名称
     * @param act_loc 活动地点
     * @param act_start 活动开始时间
     * @param act_end 活动结束时间
     * @param act_intro 活动介绍
     * @param act_pic 活动图片
     * @param act_no 活动号
     * @return:Boolean
     * @throws Exception 
     */
    public Boolean changeActivityMessage(String act_name, String act_loc, Date act_start, Date act_end, String act_intro, String act_pic, String act_no,int act_public) throws Exception;
    
    
    /**
     * 删除活动
     * @param act_no 活动号
     * @return:Boolean
     * @throws Exception 
     */    
    public Boolean deleteActivity(String act_no) throws Exception;


    /**
     * 
     * @param soc_no 社团号
     * @param stu_no 学生号
     * @param stu_name 学生名
     * @return List<Student>
     * @throws Exception
     */
    public List<Student> serchSocietyNumberByFuzzy(String soc_no, String stu_no, String stu_name) throws Exception;
	
    /**
     * 
     * @param soc_no 社团号
     * @param act_no 活动号
     * @param act_name 活动名
     * @return List<Activity>
     * @throws Exception
     */
	public List<Activity> serchMyActivityByFuzzy(String soc_no, String act_no, String act_name) throws Exception;

	/**
	 * 通过社团号查找社团人数
	 * @param soc_no 社团号
	 * @return int 社团人数
	 * @throws Exception
	 */
	public int getSocietyNum(String soc_no) throws Exception;
}
